/**
 * 1页面被打开的时候 使用onShow(-->不同于onLoad 没法再形参接收options)
 *    1判断缓存中有没有token
 *        没有直接跳转到授权页面
 *        有直接往下进行
 *    2获取url的type  
 *    3根据type 绝对哪个标签被激活选中
 *    3根据type 发送请求
 *    4渲染页面
 * 2点击不同的标题 需要重新发送请求和渲染数据
 */
import {request} from "../../request/index.js"

Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabs:[{
      id:0,
      value:"全部订单",
      isActive:true
    },
    {
      id:1,
      value:"待付款",
      isActive:false
    },
    {
      id:2,
      value:"待收货",
      isActive:false
    } 
  ,{
    id:3,
    value:"退款/退货",
    isActive:false
  }],
  orders:[]
  },
  //根据标题索引来激活选中 标题数组
  changeTitleByIndex (index){
    //修改源数组
    let {tabs} = this.data
    tabs.forEach((v,i)=>{i===index?v.isActive=true:v.isActive=false}) 
    //赋值到data中
    this.setData({
      tabs
    })
  },
  handleTbsItemChange(e){
    //1. 获取被点击标题的索引
    const {index} = e.detail
    //2. 改变标题
    this.changeTitleByIndex(index)
    //3. 重新发送请求 type = 1  index = 0
    this.getOrders(index+1)
    
  },
  //获取订单列表的方法
async  getOrders(type){
    const token = wx.getStorageSync("token");
    const header = {Authorization:token};
    const res = await request({url:"/my/orders/all",data:{type},header})
    this.setData({
      orders:res.orders.map(v=>({...v,create_time_cn:(new Date(v.create_time*1000).toLocaleString())}))
    })
    

},
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
      //判断有没有token
      const token = wx.getStorageSync('token');
      if(!token){
        wx.navigateTo({
          url: '/pages/auth/index'
        })
        return;
      }

      //1获取当前小程序的页面栈-数组 长度最大是10个页面
      let pages =  getCurrentPages();
      //2数组中索引最大的就是当前页面
      let currentPage = pages[pages.length-1]
      //3获取url的type参数
      const {type} = currentPage.options
      //4激活选中页面标题
      this.changeTitleByIndex(type-1)
      //5获取订单数据
      this.getOrders(type)
      
      
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})